﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SharpShare.Storage;

namespace SharpShare {
    public interface IOpenFileDescriptor {
        /// <summary>
        /// A string that identifies this open file.
        /// </summary>
        string Identifier { get; }

        /// <summary>
        /// The storage file that this object is describing.
        /// </summary>
        IStorageFile File { get; }

        /// <summary>
        /// The access mode this file was opened in.
        /// </summary>
        Storage.StorageFileAccess AccessMode { get; }

        /// <summary>
        /// The number of bytes read from the file.
        /// </summary>
        long BytesRead { get; }
        
        /// <summary>
        /// The number of bytes written to the file.
        /// </summary>
        long BytesWritten { get; }

        /// <summary>
        /// The date this file was opened.
        /// </summary>
        DateTime DateOpened { get; }

        /// <summary>
        /// The date this file was last read or written to.
        /// </summary>
        DateTime DateLastAccessed { get; }
    }
}
